﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Collections.ObjectModel;

namespace Unleashed.AutoUpdate.IO
{
    public class FilePathCollection : Collection<string>
    {
        public FilePathCollection Combine(string prefix)
        {
            FilePathCollection res = new FilePathCollection();

            foreach (string s in this)
                res.Add(Path.Combine(prefix, s));

            return res;
        }

        public long GetTotalFileSize()
        {
            long res = 0;

            for(int i = 0; i < this.Count; i++)
            {
                string current = this[i];
                if (System.IO.File.Exists(current))
                {
                    FileInfo fi = new FileInfo(current);
                    res += fi.Length;
                }
                else
                {
                    this.RemoveAt(i);
                    i--;
                }    
            }

            return res;
        }
    }
}